package com.atguigu.bigdata.scala.chapter06;

public class Scala08_Object_Method_Java_2 {
    public static void main(String[] args) {

        //Parent p = new Parent(); // 20
        //User p = new User();     // 40
        //Parent p = new User();   // 40
        //Parent p = new User();     // 20
        Parent p = new User();     // 30
        System.out.println(p.sum());

        // TODO 方法的重写？
        // 所谓的方法重写，其实就是父类和子类拥有相同的方法，不知道该如何调用。
        // 双亲委派机制
        // 动态绑定机制：JVM调用成员方法时，会将方法和对象的实际内存进行绑定，然后调用。
        //            属性调用没有动态绑定机制，属性在哪里声明，在哪里使用，就近原则
    }
}

class Parent {
    public int i = 10;
    public int sum() {
        return getI() + 10;
    }
    public int getI() {
        return i;
    }
}

class User extends Parent {
    public int i = 20;
//    public int sum() {
//        return i + 20;
//    }
    public int getI() {
        return i;
    }
}


